/*****************************************************************
 M3D Engine v0.1

 File: myd_camera.h
 Created: 11/08/09
*****************************************************************/
#ifndef MYD_CAMERA_H
#define MYD_CAMERA_H

#include "system/myd_system.h"
#include "graphics/myd_renderer.h"

namespace myd
{
	class MYD_API Camera
	{
		public: 
			enum cameraType {ECT_GROUND, ECT_AIR};

		public:
			//construc / destruc			
			Camera(void);
			Camera(D3DXVECTOR3 v3pos);
			Camera(float xpos, float ypos, float zpos);
			~Camera(void);

			void Draw(Renderer *tm_renderer);

			//settings
			void setPos(D3DXVECTOR3 v3pos);
			void setLookAt(D3DXVECTOR3 v3Look);
			void setLookPos(D3DXVECTOR3 v3lookpos);

			//rotations
			void Pitch(float angle);
			void Yaw(float angle);
			void Roll(float angle);

			//translations
			void Walk(float value);
			void Fly(float value);
			void Strafe(float value);

		private:
			D3DXVECTOR3 wn_v3pos;
			D3DXVECTOR3 wn_v3look;
			D3DXVECTOR3 wn_v3up;
			D3DXVECTOR3 wn_v3right;

			cameraType wn_cameratype;
	};
}//end namespace
#endif //MYD_CAMERA_H